home *** CD-ROM | disk | FTP | other *** search
/ AGA Toolkit '97 / The AGA Toolkit '97.iso / applications / kingfisher2 / history < prev    next >
Text File  |  1996-09-07  |  41KB  |  965 lines

  1. Listed in reverse-chronological order, the following text details changes
  2. made to KingFisher, KFServer, and RexxFisher since their initial public
  3. release with version 2.1:
  4.  
  5.  
  6. v2.23    18-Apr-1996
  7.  
  8.     »»» BUG FIXES:
  9.  
  10.     (no bugs known (hooray!); no bugs fixed)
  11.  
  12.  
  13.     »»» IMPROVMENTS:
  14.  
  15.     KFServer is now able to handle a mixture of Release 1 and Release 2
  16.     datafiles. In other words, the supplied data files that comprise
  17.     the 1000Fish database have always been in Release 1 format. Adding
  18.     fish disks 1001+ in Release 2 format caused the server to mistake
  19.     the inconsistent data offsets for a corrupted index file when
  20.     sanity checking was enabled.
  21.  
  22.     It is now possible to define external commands to be executed when
  23.     KingFisher completes a search. A spearate command can be executed
  24.     for success and failure conditions of a search. Useful for playing
  25.     a sound, or "say 'found something!'"
  26.  
  27.     The text layout engine has been completely rewritten. The code was
  28.     a mess anyway. It's much prettier now, much more direct, and far
  29.     less difficult to alter if this is necessary in the future.
  30.  
  31.     \> is now handled slightly differently depending where it is used:
  32.        1. in the format file it indents the field contents, effectively
  33.           altering the left margin until the end of the field contents
  34.           are reached;
  35.        2. if used within the contents of a record, the indentation is
  36.           terminated by the next \n (newline) as originally designed.
  37.  
  38.     A completely untested \< should push the left margin to the left by
  39.     one tab stop. Or so it is hoped...
  40.  
  41.     \# allows switching in and out of verbatim mode. Fields like the
  42.     description field are handled in flow mode, meaning that blanks and
  43.     end of line characters are treated as blanks and multiple blanks
  44.     are treated as a single blank. In verbatim mode, practically all
  45.     characters are allowed to go to the display, even multiple blanks.
  46.  
  47.     New "Product-Info Specification Version 8" integrated into the
  48.     documentation.
  49.  
  50.  
  51. v2.22    (ack!)
  52.  
  53.  
  54. v2.21    31-Jan-1996
  55.  
  56.     »»» BUG FIXES:
  57.  
  58.     KingFisher could forget to unblock its windows if the "Copy to
  59.     Clipboard" command was issued in the Search Result Window. The
  60.     program would still respond to external kill signals (which can
  61.     always be issued to the server to cause it to signal all clients.
  62.         The same problem may have affected printing and export
  63.     functions as well.
  64.  
  65.  
  66.     »»» IMPROVEMENTS:
  67.  
  68.     KINGFISHER now removes the intial About window automatically if it
  69.     has been visible for longer than 2 seconds while the server &
  70.     database were being loaded/initialized.
  71.  
  72.     KingFisher now uses the KEYPATH environment variable (if set) in
  73.     addition to the KEYS: KEYFILE: and KEYFILES: (logical) volumes to
  74.     locate its keyfile.
  75.     NOTE: The Installer will always install the file to the default
  76.     directory if found on a distribution disk.
  77.  
  78.     KingFisher now adds the version and release dates to the Search
  79.     Result Window entries for a significantly quicker overview of what
  80.     records are likely to be newer than others.
  81.  
  82.     KingFisher now sorts the Search Result Window. By default, the
  83.     entries are presented in alphanumeric order but this can be changed
  84.     back to what KingFisher used to do: present the list in record
  85.     order by altering the "Search-Result-Order" entry in the .prefs
  86.     file to a value of "S" (sequence) instead of "N" (name); Name order
  87.     knows how to take proper version numbers into account (i.e. v2.5 is
  88.     earlier than 2.30, which is again earlier than 2.768.)
  89.  
  90.  
  91.  
  92. v2.20    20-Dec-1995            *** 1st wide public release since 2.10
  93.  
  94.     »»» BUG FIXES:
  95.  
  96.     KINGFISHER 2.11 and 2.12 didn't run with Kickstart 2.x because the
  97.     Datatypes.library was auto-opened (fails under KS 2) rather than
  98.     under control of my own routines, which adjust for the lack of it.
  99.     i.e. KINGFISHER RUNS UNDER KS2.x AGAIN (v2.11 and v2.12 didn't.)
  100.  
  101.     KingFisher should no longer crash when adding fish from a directory
  102.     tree.  This was broken since v2.6.  (whoops!)
  103.  
  104.     KingFisher had a subtle (and potentially quite serious!)  problem
  105.     with requester-blocked windows. This problem was especially serious
  106.     with multiple blocked windows.  8-(
  107.  
  108.     KingFisher indicated a fish# (record) one too large when exporting
  109.     fish to the clipboard (this was in the .INDEXINFO portion.)
  110.  
  111.     KingFisher's "Build Version Links" command is no longer available
  112.     if the database is not writable.
  113.  
  114.     KingFisher's database title gadget would overlap the listview if
  115.     KingFisher was started without this gadget visible and it was then
  116.     selected to appear in the interface.
  117.  
  118.     KingFisher had a minor bug in the clipboard routine: under certain
  119.     circumstances the clip would not be properly terminated and might
  120.     then have additional junk appended.
  121.  
  122.     KFSERVER now marks the index files as "dirty" when truncated; this
  123.     assures that they are actually written to disk if no other changes
  124.     have been made to the database.
  125.  
  126.     KFServer can now properly truncate the default database.  Why this
  127.     has slipped me by for so long is a mystery...
  128.  
  129.     KFServer no longer complains about a record being too big after one
  130.     or more records have been added to the database of which at least
  131.     one is larger than any previous record.
  132.  
  133.     »»» IMPROVEMENTS:
  134.  
  135.     KFSERVER will no longer exit if the default database is unavailable
  136.     for some reason. A client that does not open a specific database is
  137.     in such cases unable to get any work done unless ANOTHER client has
  138.     opened a database. The database used by the "unspecific" client in
  139.     such cases is, for most practical purposes, indeterminate (it is
  140.     the database that has been open the longest.)
  141.  
  142.     KFServer now ignores /* ... */ comments at the top of Product-Info
  143.     files. Nested comments are not permitted.
  144.  
  145.     KFServer now supports a 'priority' setting in its .prefs file to
  146.     allow the server to be set to a higher priority than normal. It is
  147.     not recommended to set the server's priority higher than 4.
  148.  
  149.     KingFisher now displays "(no database selected)" when the KFServer
  150.     cannot present it the requested database on startup; it is then up
  151.     to the operator to select a different database.
  152.  
  153.     KingFisher now positions to the first added fish after a directory
  154.     tree scan and invokes the reindexing command for you (which you may
  155.     cancel if you wish.)
  156.  
  157.     KingFisher no longer attempts to perform a reindexing operation on
  158.     all fish added through the directory tree scan; you must perform
  159.     this operation "manually" afterwards -- this is so you have more
  160.     control over what and how you want to reindex.
  161.  
  162.     KingFisher can now start the KFServer in DEBUG mode if either the
  163.     tooltypes (Workbench interface) or the CLI parameters contain the
  164.     keyword "debug"
  165.  
  166.     KingFisher no longer complains about being unable to connect to the
  167.     server when the actual failure was access to the desired database.
  168.     This problem is now correctly diagnosed and presented to the user.
  169.  
  170.     KingFisher now has 'search-priority' and 'search-priority-relative'
  171.     settings in the .prefs file, which control the priority while it is
  172.     engaged in searching for information.
  173.  
  174.     Both KFSERVER and KINGFISHER now use a keyfile to determine freely
  175.     distributable vs. registered status.  The keyfile is sought first
  176.     in the current directory, then in KEYS: KEYFILE: KEYFILES: and S:
  177.  
  178.         -------------------------------------------------
  179.         REGISTERED USERS: For the upgrade cost of US$5.00
  180.         you can upgrade to the latest KingFisher, and get
  181.         the keyfile, too.  The keyfile means you can just
  182.         download future versions of KingFisher without
  183.         needing to apply complicated patches to upgrade!
  184.         -------------------------------------------------
  185.  
  186.     Released a new and *much* more up-to-date Product-Info file. :-)
  187.  
  188.     Online (AmigaGuide) documentation reorganized: *lots* of work!
  189.  
  190.     Flag gadgets are now initially disabled by default to prevent
  191.     premature manipulation before a database is loaded and its R/W
  192.     state becomes known.
  193.  
  194.     New VIEW menu allows alternate view of a Product-Info file or the
  195.     clipboard to help you proof-read your own Product-Info files.
  196.     Viewing the Product-Info file is a "live view" that is implemented
  197.     via Notification: any change to the file is immediately detected by
  198.     KingFisher and the display updated.
  199.  
  200.     Custom formats used for the display, printing, and for exporting
  201.     are now hotlinked via AmigaOS notification: a change to the files
  202.     will be immediately reflected within KingFisher!
  203.  
  204.     KingFisher now attaches to the server while simultaneously the
  205.     About window is being displayed. This improves startup speed. The
  206.     About window cannot be removed during initial attachment to the
  207.     server (busy pointer.)
  208.  
  209.  
  210.  
  211. v2.12    23-Oct-1995            *** Only on the "GoldFish 3" CD-ROM
  212.     
  213.     »»» IMPROVEMENTS:
  214.  
  215.     KINGFISHER accepts one or more 'field-format-handling' entries in
  216.     the .prefs file to allow setting defaults for field layout control
  217.     based on the field name.  This feature provides a global override
  218.     for fields that do not specifically define their layout preference
  219.     via option sets (see documentation.)  In short, @{[f1>]description}
  220.     as found in a .format file (see display/print/export formats) could
  221.     be defined globally with 'field-format-handling=description=1f>'
  222.  
  223.  
  224.  
  225. v2.11    07-Oct-1995            *** Released only to Registr.#1034
  226.  
  227.     »»» BUG FIXES:
  228.  
  229.     KINGFISHER now supports help on the 'Use external gadget images'
  230.     menu option.
  231.  
  232.     Help with expression errors now brings up extended AmigaGuide help
  233.     as originally intended.
  234.  
  235.     Database title is now displayed even if no specific database is
  236.     selected (i.e. if you have never done more than use the default
  237.     without explicit selection through the "Open Database" command.)
  238.  
  239.     »»» IMPROVEMENTS:
  240.  
  241.     KINGFISHER no longer closes and reopens the window when changing
  242.     the status of the "Show Database Title" gadget.
  243.  
  244.     Moved clipboard-related items in the EDIT menu up above the index-
  245.     related items.
  246.  
  247.     Documentation brought up to date in several portions.  Expression
  248.     tutorial modularized.  Typos fixed.  Enhanced for AmigaGuide V39+
  249.  
  250.     Support for external images on buttons.  The ugliness of the Flag
  251.     gadgets (2 rows of 8 flags in top right corner) benefits from this
  252.     new feature especially.  See the documentation, section 2.10 SPECIAL
  253.     for more information.
  254.  
  255.     Internal images (esp. the Flags) improved.  Well, *I* think they're
  256.     nicer.  Don't you?
  257.  
  258.     REXXFISHER now listens to the CTRL-E break signal to interrupt
  259.     a search in progress.
  260.  
  261.     KFSERVER now keeps track of R/W status of both index components:
  262.     This eliminates the server's attempt to update the quick index on a
  263.     R/O volume even if only the main index has changed (and the quick
  264.     index really did not need to be saved.)
  265.  
  266.  
  267.  
  268. v2.10    4-Jul-1995
  269.  
  270.     »»» BUG FIXES:
  271.  
  272.     KINGFISHER's "Apply Mask to Search Set" operation now properly
  273.     titles its "operation completed" announcement window with the
  274.     expected "Apply Mask ... operation completed" rather than the
  275.     erroneous "Export..." title.  Silly typo.
  276.  
  277.     KFSERVER had a subtle and rather severe bug in the update index
  278.     routine.  This afflicted *ONLY* an ONDISK index.  Another part of
  279.     this bug (it multiplied when I wasn't looking, really!) involved
  280.     a corrupted 1st record in the index.  INRAM index had no problems.
  281.  
  282.     A completely empty index (no index at all) would fail to extend the
  283.     index when additions were made.  This also affected reindexing.
  284.  
  285.     »»» IMPROVEMENTS:
  286.  
  287.     The Version Linking operation has been sped up DRAMATICALLY!  In
  288.     fact, we're back to an O(n) algorithm, which is better than I had
  289.     expected to achieve. :-)
  290.  
  291.     The Version Linking now has a percent bar and no longer dumps the
  292.     status information passed from the server to a console window.
  293.     This was rather ugly for a long time, I must admit. <blush>
  294.  
  295.     Installing a database with the PROJECT/Install... command will now
  296.     add paths to the relevant filename references if no paths are
  297.     given in the .kfdb file being installed.  The path added is the
  298.     directory from where the .kfdb file is copied.
  299.  
  300.     Reindexing the database will now present indexing information in a
  301.     small window with percentage progress bar, rather than with text
  302.     dumped to a console window.
  303.  
  304.     The main window now opens with an additional gadget: the Database
  305.     Title Gadget.  You may unselect the appropriate menu entry in the
  306.     PREFERENCES/Display menu if you rather not have KingFisher display
  307.     the current database title.  Depending on the resolution of your
  308.     screen, you may find it more important to have an extra line or two
  309.     of the descriptions visible.
  310.  
  311.     The menu button no longer blocks the VersionLink, Reindex Status,
  312.     and About windows (these have no menus.)
  313.  
  314.     The menu (right mouse) button now closes the Expression History and
  315.     the Open Database windows.  The Open Database window adjusts its
  316.     position based on the availability of the new Database Title Gadget
  317.     and the Expression History gadget no longer has a border and close
  318.     gadget (RMB and Escape key will cancel & close the window, as well
  319.     as clicking outside the window.)
  320.  
  321.     The maximum height of the search expression gadget is now definable
  322.     in the .prefs file as 'MaxHistHeight' -- a minimum of 3 lines is
  323.     required.  This height is dynamically adjusted to prevent the
  324.     window from sliding up over the search expression gadget when the
  325.     window is taller than screen space available.
  326.  
  327.     The "Apply Mask" operation in the Search Result Window's menu
  328.     (where this command affects all fish in the displayed Search Set)
  329.     has been sped up dramatically as it now uses a new call made
  330.     available beginning with KFServer 2.8
  331.  
  332.     When a search completes and the screen where KingFisher's main
  333.     window resides is not the active screen, then KingFisher will flash
  334.     all screens as a signal that the search is completed.
  335.  
  336.     The Search Result window now closes and re-opens when the main
  337.     window is resized.  Keeps things tidier.  This is an option in the
  338.     Display Preferences: Sticky Result Window.
  339.  
  340.     The font selection is now updated in the .prefs file only if a new
  341.     font is explicitly selected.  I.e. KingFisher will no longer store
  342.     the system's default font selection automatically.
  343.  
  344.     'Auto-Format=X' (where X=0,1,2) is not documented elsewhere as it
  345.     is primarily a debugging aid: it allows you to select an alternate
  346.     "Show All Fields" format.  0 is the old default; 1 and 2 are slight
  347.     variations.
  348.  
  349.     The word 'REGISTERED' has been removed from the $VER: tag to make
  350.     the string 100% Amiga User Interface Style Guide compliant.  The
  351.     evaluation version will continue to carry the "EVALUATION COPY"
  352.     tag.
  353.  
  354.     KFSERVER now allows a DO-SANITY-CHECK=(yes|no) setting in .kfdb
  355.     files to force or prevent the database index to be checked for the
  356.     most glaring and obvious types of corruption.
  357.  
  358.     A SANITY-CHECK option in the KFServer.prefs file may be set set to
  359.     specify a default sanity check mode for databases (.kfdb) that do
  360.     not specify a DO-SANITY-CHECK value.  The permissible values are:
  361.         Always    Will always perform a sanity check
  362.         InRam    Will perform the check only on an index that is
  363.             loaded into RAM -- much quicker operation and
  364.             less delay while opening a database.
  365.         OnDisk    Will perform the check only on an OnDisk index
  366.             but not InRam index.
  367.     The default for SANITY-CHECK is INRAM.
  368.  
  369.     Very slight speedup implemented on several operations, including
  370.     the loading of fish.  You probably won't notice...
  371.  
  372.     The LOADINDEX value in the KFServer.prefs file can now specify the
  373.     following values:
  374.         AlwaysInRAM    Index will ALWAYS be loaded into RAM, no
  375.                 matter if the .kfdb file specifies it to
  376.                 stay on disk.  With large indices in use
  377.                 this can really push RAM requirements
  378.                 through the ceiling but makes for faster
  379.                 operations.
  380.         AlwaysOnDisk    Index will ALWAYS remain on disk, no matter
  381.                 if the .kfdb file specifies it to be loaded
  382.                 to RAM.  This is the most memory efficient,
  383.                 but slowest method of operation.
  384.         DefaultInRAM    If a .kfdb file specifies NO 'Index=' entry
  385.                 then the index will be loaded into RAM.
  386.                 This is and has been the default method.
  387.         DefaultOnDisk    If a .kfdb file specifies NO 'Index=' entry
  388.                 then the index will remain on disk for more
  389.                 memory efficient operation (but penalizing
  390.                 you with slower access speed.)
  391.     The DEFAULT... values affect only .kfdb databases that do not set a
  392.     preference for the index with the 'index=' entry in their .kfdb
  393.     files.  The ALWAYS... values override them.
  394.  
  395.  
  396.  
  397. v2.9    4-Apr-1995
  398.  
  399.     »»» BUG FIXES:
  400.  
  401.     KINGFISHER will no longer add of junk to the end of a custom
  402.     display format.
  403.  
  404.     KFSERVER now reports an uptime of 0 seconds as "0s" rather than a
  405.     null string (oh, my, the Earth moved!) (yawn)
  406.  
  407.     Fixed Error-By-1 on correcting VersionLinks that point into a
  408.     region of records that are being deleted.  Also included the
  409.     Previous Link in the check (only the NextLink was checked before.)
  410.  
  411.     Removed a bug that prevented ONDISK index files from working.  It
  412.     is now possible to specify if a database index is to be used as an
  413.     INRAM index (fastest) or ONDISK (no overhead in memory!)
  414.  
  415.     »»» IMPROVEMENTS:
  416.  
  417.     KINGFISHER now adjusts its gadget proportions according to the
  418.     screen size.  A medium resolution (such as 640x200) display will
  419.     now present less stretched gadgets.
  420.  
  421.     Some images replaced with nicer ones, and colors (especially the
  422.     4th (usually blue) color) cleaned up.
  423.  
  424.     When running under Kickstart 3.0 or later, the KingFisher logo in
  425.     the About window will now be displayed in up to 16 shades of gray.
  426.     The image will be remapped to provide the best color fidelity
  427.     available from Intuition's free/shared pens.  An 8-color screen is
  428.     not the best, but a 16 or even 32 color screen (can provide quite
  429.     excellent reproduction!)
  430.  
  431.     The text formatting routines finally handle paragraph and field
  432.     indentations properly!  Default format cleaned up and improved.
  433.  
  434.     Added a \- symbol to the format parser, which fills the rest of the
  435.     line with a dashed line (------------...) and then inserts a
  436.     newline as if \n was given.
  437.  
  438.     Added a \N (uppercase version of \n) to function as a conditional
  439.     newline that is added only if the preceding line is not already a
  440.     blank line.
  441.  
  442.     The 'author' field is now handled as a "verbatim" field, meaning
  443.     that linefeeds in the field are treated as real newlines instead of
  444.     soft returns.
  445.  
  446.     Added option capability to the @{field} specifiers.  Options are
  447.     specified BEFORE the name of the field, and enclosed in []'s such
  448.     as:
  449.         @{[f]author}
  450.         @{[0>]description}
  451.     Available options at this time are:
  452.         f,v    Force Flow or Verbatim Mode.
  453.                 In Flow Mode, the presence of a newline in
  454.             the file is treated as a blank space would, and
  455.             only a \n sequence is regarded as a newline
  456.             (paragraph break.)  This produces word-wrapped
  457.             paragraphs, where the end of a paragraph is
  458.             explicitly indicated with a \n sequence.  The
  459.             DESCRIPTION is usually handled in Flow Mode.
  460.                 In Verbatim Mode, a newline in the file is
  461.             treated the same as a forced paragraph break from
  462.             the presence of a \n sequence.  The AUTHOR field is
  463.             usually handled in Verbatim Mode.
  464.                 By default, all fields are treated in flow
  465.             mode, except for:  reference, address, email, docs,
  466.             run, stored-in, and author.
  467.                 If you wish to add the "contents" field to
  468.             the display, specify it as @{[v]contents} -- the
  469.             option set [v] forces KingFisher to use verbatim
  470.             mode instead of the default flow mode.
  471.         0,1    How many lines to be placed between paragraphs.
  472.             By specifying '0' in the option set, you can remove
  473.             the blank lines that KingFisher inserts between
  474.             paragraphs (in the description field, for example.)
  475.         |,>    Force non-indented or indented paragraphs.  By
  476.             adding '>' to the option set (in the description
  477.             field, for example) you can add an indentation at
  478.             the start of paragraphs (all, except the first);
  479.             this is especially useful in combination with a '0'
  480.             (see above) to improve readability.  Try it!
  481.                 @{[0>]description}
  482.  
  483.     The frames for the Browse and Search gadget groups are now set to
  484.     the same height.  This makes for a somewhat cleaner appearance.
  485.  
  486.     The search expression gadget will now adjust its size to a
  487.     combination of extra wide and very narrow characters, weighted
  488.     towards the proportionally wider ones.  This allows the window to
  489.     be sized narrower while maintaining a sense of the current font's
  490.     size requirements.
  491.  
  492.     The Listview scrollers are now adjusted in width to whatever font
  493.     is selected for the window.  This is _much_ nicer with large fonts;
  494.     the minimum size is 16, no matter what.  The formula is 2/3 of the
  495.     font size, so that any font sized above 24 will bring the adjust-
  496.     ment into play (i.e. a font size 30 will use a scroller width of
  497.     20.)
  498.  
  499.  
  500.  
  501. v2.8    6-Mar-1995
  502.  
  503.     »»» BUG FIXES:
  504.  
  505.     KINGFISHER will now properly handle EQUAL and NOT EQUAL comparisons
  506.     in expressions.  These did not work until now because of a trailing
  507.     newline in the field data.
  508.  
  509.     Case sensitivity in search expressions is now implemented properly.
  510.  
  511.     Improved expression evaluation speed somewhat.  Fixed minor bug in
  512.     evaluation routine that may have been responsible for failures to
  513.     find some information.
  514.  
  515.     Will no longer disable all relevant browsing and motion gadgets
  516.     when attempting to step one record past the end of the database,
  517.     leaving only the keyboard (left-arrow key, for example) available
  518.     to move one record backward and "recover" the use of the gadgets.
  519.     Why did I not find this earlier?  Why did nobody ever report this?
  520.  
  521.     Will no longer place the .INDEXINFO= tag within the markers when
  522.     writing records to the clipboard.  This was an nasty error on my
  523.     part that would make it impossible for KFServer to properly handle
  524.     clipboard input.  A very embarrassed "Sorry!"
  525.  
  526.     Properly updates the VersionLinks after adding new fish to the
  527.     database.
  528.  
  529.     Now properly updates the QuickIndex when adding new fish.  This was
  530.     a very dreadful omission in the code for which I do apologize!  My
  531.     thanks to Dean Ridgway for making me aware of this problem.
  532.  
  533.     When opening a KingFisher Release 1 database, and the index is
  534.     found to be a Release 1 index, KingFisher Release 2 will perform an
  535.     on-the-fly conversion of the Release 1 index into a Release 2 index
  536.     located in RAM.  This has always been the case, but there was a
  537.     very unfortunate mis-computation of index-size that could result in
  538.     error messages and some junk at the end of the index.
  539.  
  540.     When hitting the close gadget while scanning a directory tree, the
  541.     program will no longer lock up (it previously attempted to block a
  542.     window that was already blocked; although officially supported,
  543.     this does seem to cause trouble...)
  544.  
  545.     REXXFISHER's RF_OBTAIN command now returns the proper values when
  546.     using the PVER and NVER options.    
  547.  
  548.     KFSERVER's I/O handlers and indexing operations were rewritten from
  549.     the ground up to streamline their operation and eliminate a number
  550.     of strangenesses that grew there over time.  Many problems should
  551.     be fixed now: occasional case sensitivity to the ".name" identifier
  552.     and serious problems with (re)indexing operations involving the
  553.     QuickIndex and partitioned databases.
  554.  
  555.     Should now be able to find files in the root directory of a volume
  556.     (or logical assignment.)  This was a bug in SAS' dirwalker.c (for
  557.     those interested, the problem is with walkdir(): appending a '/' is
  558.     done only when the last character is not already a ':' or '/' but
  559.     the offset tested is the character BEYOND the last one, so it will
  560.     ALWAYS append the '/' to produce bogus names like: "SYS:/foo/KF.pi"
  561.  
  562.     »»» IMPROVEMENTS:
  563.  
  564.     KINGFISHER can now use DOS Patterns (i.e. "#?(foo|bar)#?" in search
  565.     expressions.  This is indicated in an expression with the use of
  566.     the '#' operator (as opposed to =, !=, <=, >=, $, ...)  Example:
  567.         name # "#?(foo|bar)#?"
  568.  
  569.     No longer activates its window if KingFisher's screen is not the
  570.     active one.  This permits starting KingFisher in the background
  571.     (perhaps with a hotkey) without having to "fear" that while you're
  572.     typing something the console will get yanked away from your active
  573.     window.  Likewise, KingFisher will not active the windows it opens
  574.     (when a search completes, for example) if its main window was
  575.     inactive.
  576.  
  577.     Also supported now is the option to sort links by their associated
  578.     version number.  This means that if a CD-ROM contains version 1.0,
  579.     2.0, 3.0, 1.2, 1.5, 1.9, and 3.1 the VersionLinks will be ordered
  580.     to allow you to scan: 1.0, 1.2, 1.5, 1.9, 2.0, 3.0, 3.1 regardless
  581.     if this means moving forward or backward through the database!
  582.         Notice that some programs use rather ill-constructed
  583.     version numbers, such as 1.02 (which is handled as 1.2) since the
  584.     two version numbers (before and after the dot) are not fractions
  585.     but whole numbers.    
  586.  
  587.     REXXFISHER experienced the same improvements and bug fixes to the
  588.     search engine as KingFisher did (they share the engine code.)
  589.  
  590.     RexxFisher's version number upgraded from 1.11 to 2.8 to make the
  591.     versions less confusing with respect to KingFisher and KFServer.
  592.  
  593.     New command to select a specific record without actually retrieving
  594.     its data.  This is quicker than an RF_GETFISH, yet the RF_OBTAIN
  595.     command can still be used to obtain index-related data:
  596.         RF_SELECT fishnumber
  597.  
  598.     KFSERVER now informs a client program if it cannot open a database
  599.     file.  It is then up to the client to retry the operation based on
  600.     possible user-feedback.  This is implemented to prevent the server
  601.     from blocking.  You can (if you absolutely must do this) force the
  602.     server to block and present a message without involving the client
  603.     by setting the following in the KFServer.prefs file:
  604.         SUPPRESS-REQUESTERS=NO
  605.     The value defaults to YES.
  606.  
  607.     Now actually removes deleted records from the database, eliminating
  608.     the chance that subsequent additions followed by reindexing scans
  609.     into only half-overwritten junk.  A side-effect of this is that a
  610.     Reindex operation following a Delete operation will NOT recover any
  611.     records.  Delete is now permanent!
  612.  
  613.     Now performs a sanity check on an inRAM index (but not onDISK)
  614.     before loading.  This produces a meaningful diagnostic and prevents
  615.     confusing errors later.
  616.  
  617.     When a database is opened multiple times (perhaps by multiple
  618.     clients) the the first client is the only one who has the right to
  619.     modify the database.  This prevents multiple clients attempting to
  620.     alter the flags, for example.  This mechanism will be improved in
  621.     the future to permit implicit individual record locking.
  622.  
  623.  
  624.  
  625. v2.7    19-Jan-1995
  626.  
  627.     »»» BUG FIXES:
  628.  
  629.     KINGFISHER now properly calculates text layout in the About Window.
  630.     Until now it failed to make use of available space the way it was
  631.     meant to, especially with large fonts.
  632.  
  633.     System Requesters now open up on KingFisher's screen even if it is
  634.     a custom screen, rather than bringing the Workbench to the front.
  635.  
  636.     While adding fish, a response of "No" was synonymous with "Cancel."
  637.     Needless to say, this was not the way it was intended.
  638.  
  639.     If the server terminates while KingFisher is in the middle of an
  640.     operation during which it may not check for an exit signal from the
  641.     server, it will no longer attempt to re-start the server in order
  642.     to continue the operation in progress.
  643.  
  644.     KFSERVER had a bug in kfcSETPOS command that caused the index entry
  645.     of the PREVIOUS record to be addressed (for inRAM index.)
  646.  
  647.     »»» IMPROVEMENTS:
  648.  
  649.     KINGFISHER now (optionally) frames related gadgets with recessed
  650.     borders to group gadgets visually.  The option is available from
  651.     the PREFERENCES/Display menu.
  652.  
  653.     Added ability to switch SmartRefresh/SimpleRefresh option from the
  654.     PREFERENCES/Display menu.  This used to be only available through
  655.     the tooltypes or the KingFisher2.prefs file.
  656.  
  657.     'Build VersionLinks...' command now scans the database QuickIndex
  658.     and builds a new set of version links.  This was an O(n) algorithm
  659.     in KingFisher 1, but is now, regrettably, O(n²) because KingFisher
  660.     2 can no longer make the easy assumptions about the database that
  661.     KingFisher 1 could make.
  662.  
  663.     The PREFERENCES/Display submenu now uses check marks to indicate
  664.     which (if any) of the 'Load Custom Format...' and 'Show all fields
  665.     in record' choices is the current one.  This is an issue only with
  666.     the Display Format option, as the print and export formats have no
  667.     special dual option, and their presence or absence is easily noted
  668.     by the enable/disable status of their respective 'Drop...' options.
  669.  
  670.     Now adds the START/STOP markers to the clipboard because it is
  671.     easier to remove them instead of having to manually add them.  The
  672.     .INDEXINFO item is also added for maximum future compatibility.
  673.  
  674.     With the Search Result window's new menu item "Copy to Clipboard,"
  675.     all records in the Search Set are copied to the clipboard, each
  676.     separated with proper START/STOP markers to make their separation
  677.     easier.
  678.  
  679.     The UNREGISTERED version of KingFisher now requires user action to
  680.     clear the initial About window to encourage reading of the text;
  681.     it will no longer go away as it used to with a timeout.  The
  682.     REGISTERED version is not affected by this change.
  683.  
  684.     REXXFISHER can now truncate a database at the current record.  To
  685.     prevent accidents, the command can be given a parameter that
  686.     specifies the exact number of records that you expect to be deleted
  687.     by the operation.  If the parameter is provided but does not match
  688.     the number of actual records that would be deleted, then the call
  689.     will fail and no truncation will take place.  Omitting the value
  690.     will by-pass this safety measure.
  691.         RF_TRUNCATE    [ records ]
  692.  
  693.  
  694.  
  695. v2.6    02-Dec-1994
  696.  
  697.     »»» BUG FIXES:
  698.  
  699.     KINGFISHER did not make REVERSE searches based on QuickIndex any
  700.     faster than they were in version 2.4.  This has been corrected.
  701.     Please note that the QuickIndex and SearchMasks are not currently
  702.     compatible and cannot be used together.  This will be improved in
  703.     a future release.
  704.  
  705.     Two problems involving severely trashed, and mysteriously vanishing
  706.     text (Reconstruct database index...) in menus have been corrected.
  707.  
  708.     Fixed a memory re-allocation bug that was responsible for producing
  709.     trashed items in the DBInfo list and other related problems of this
  710.     sort.
  711.  
  712.     When the registered version is run without the NOOUTPUT option, it
  713.     no longer claims to be freely distributable.  Bit of an oversight!
  714.  
  715.     KFSERVER now returns the intended values for a kfcSELECTDATABASE
  716.     command.  Previously, the values returned by the command were not
  717.     handled properly, although no immediately adverse effects came of
  718.     that.
  719.  
  720.     Improved creation of new databases.  New databases should no longer
  721.     come up as read-only databases when they are first created, nor
  722.     should there be any problems now adding data to a newly created
  723.     database.  Unconditional error messages have now been guarded with
  724.     a verbosity level check, so the server will be less prone to ramble
  725.     on about the things that are and are not happening.
  726.  
  727.     System Requesters are no longer suppressed.  At one time this was
  728.     meant to prevent the server from blocking in case that an unmounted
  729.     volume was accessed, but this inadvertently disabled the server's
  730.     ability to serve databases stored on off-line (unmounted) volumes.
  731.  
  732.     A bug was fixed involving detection of Read/Write status of a
  733.     database.  A database whose primary index file is stored in the
  734.     root directory of a logical or physical volume (i.e. in DF0: or
  735.     in KF2:, as opposed to a subdirectory DH0:Database/) would not be
  736.     able to determine the status and assume Read-Only ability.
  737.  
  738.     »»» IMPROVEMENTS:
  739.  
  740.     KINGFISHER now supports the clipboard.  Writes current fish to the
  741.     clipboard; Appends one or more fish from the clipboard.  Clipboard
  742.     currently fixed to unit 0.
  743.  
  744.     The Center Window option now immediately centers the window on the
  745.     current display when activated.  The window will be re-centered
  746.     when the size is changed, and the option is automatically turned
  747.     off when the window is repositioned.
  748.  
  749.     A new option in PREFERENCES/DISPLAY is available to display all
  750.     fields in a record.  This uses the custom display mechanism and can
  751.     be turned off by dropping the custom display formed by this option.
  752.  
  753.     Can now select larger fonts (previous version seemed to be limited
  754.     to size of 24 pixels or less, at least on my system.)
  755.  
  756.     KFSERVER now reports total uptime and bases percentage of use on
  757.     the total time the server was USED rather than the client's total
  758.     connect time (which eventually led to 0% used when the server was
  759.     idle.)
  760.  
  761.     REXXFISHER now has the ability to add all fish from a file to the
  762.     current database, as well as affect the previous and next version
  763.     link values in the index.  The new commands are:
  764.         RF_ADDFISH    'filename'
  765.         RF_SETVLINK    PVER fishnumber | NVER fishnumber
  766.  
  767.  
  768.  
  769. v2.5    05-Nov-1994
  770.  
  771.     »»» BUG FIXES:
  772.  
  773.     Explicitly quoted string constants in expressions are no longer
  774.     affected by the TRIM BLANKS setting which shaves off blank spaces
  775.     in expressions to avoid mistakes with blanks at the end of strings.
  776.  
  777.     »»» IMPROVEMENTS:
  778.  
  779.     The QuickIndex feature now deserves its name:  It has been sped up
  780.     so it can search 4500 records in a mere second (the exact speed
  781.     depends on how many matches are produced and need to be processed.)
  782.     Unlike the QuickIndex that was part of KingFisher 1.x, this
  783.     QuickIndex feature is a) fully automatic and b) not limited to
  784.     substring searches (i.e. you can search "name$king & ~name=kingcon)
  785.     which was possible with KingFisher 1 only when not using the quick
  786.     index.
  787.  
  788.     The expression syntax has been enhanced to permit a shortcut:
  789.       field op ( value | value & value ^ value )
  790.     is equivalent to:
  791.       field op value | field op value & field op value ^ field op value
  792.     Thus:
  793.         name$(king|aqua|fish)
  794.     Is the same as:
  795.         name$king | name$aqua | name$fish
  796.     The portion in ()'s may contain multiple levels of parentheses to
  797.     prioritize the evaluation order:
  798.         name$(fish&(king|net|sticks))
  799.     represents:
  800.         name$fish & ( name$king | name$net | name|sticks )
  801.     
  802.  
  803.  
  804. v2.4    01-Nov-1994
  805.  
  806.     »»» BUG FIXES:
  807.  
  808.     If the KFServer is shutdown, all clients (such as RexxFisher and
  809.     KingFisher) are now sent break signals instead of exit messages.
  810.     This is more reliable and less prone to lost resources.
  811.  
  812.     Improvements made to handling user-interaction while adding records
  813.     to the database.
  814.  
  815.     Once again, the $VER: tags have been fixed.  The fact that the type
  816.     identification ("EVALUATION COPY"/"REGISTERED") left an illegal
  817.     white space in the string caused further problems.  This time the
  818.     identification (EVALUATION/REGISTERED) has been moved to AFTER the
  819.     date portion.  Even though this is still not recommended practice,
  820.     so many programs used this method to append copyright or other
  821.     text, that Commodore made special arrangements to support it; this
  822.     is significantly more compatible than adding non-numeric letters to
  823.     the version number.
  824.  
  825.     »»» IMPROVEMENTS:
  826.  
  827.     New menu command to reconstruct damaged or lost index files.  This
  828.     command is NOT named "reindex" to avoid possible misunderstandings
  829.     about its purpose.  Using "Reconstruct database index" causes the
  830.     loss of all existing version links and individual record flags, so
  831.     it is not a function to be used casually.
  832.  
  833.     Additional interface features added for more keyboard control
  834.     (tabbing between Main and Search Result windows, for example.)
  835.  
  836.     KingFisher now recognizes if a search expression references only
  837.     the field upon which the QuickIndex is based.  In such cases a
  838.     search is at least twice as fast as before.  Further speed-up is
  839.     scheduled for a future version.
  840.  
  841.     Documentation has been rewritten with AmigaGuide V39/V40 features
  842.     in mind.  If running under 2.x, the Installer will alter the .guide
  843.     to make it readable with earlier versions of AmigaGuide.
  844.  
  845.     New Installer script permits partial installation and upgrades to
  846.     be performed.
  847.  
  848.  
  849.  
  850. v2.3    05-Sep-1994
  851.  
  852.     »»» BUG FIXES:
  853.  
  854.     Corrected several problems involving access to an empty database
  855.     that would a) produce a variety of complaints, some even completely
  856.     incorrect assertions, b) not properly ghost relevant gadgets, and
  857.     c) produce potentially misleading or bogus values for the numeric
  858.     (fish/disk) gadget.
  859.  
  860.     Potential problem removed involving an improperly terminated node-
  861.     context table for the AmigaGuide interface.  This may have caused
  862.     improper, unreliable, or unresponsive functioning of KingFisher's
  863.     HELP system.
  864.  
  865.     Compatibility problem resolved with the Fish/Disk cycle gadget,
  866.     which inadvertently used a NULL font pointer.  This caused GadTools
  867.     to use the system default font but could confuse system extensions
  868.     that enhance cycle gadgets to produce pop-up lists, instead.
  869.  
  870.     Formatting problem solved which would not properly terminate the
  871.     formatted output.  This affected both KingFisher and RexxFisher due
  872.     to shared code.
  873.  
  874.     Selecting an expression from the Search Expression History window
  875.     will now cause the selected item to be moved to the top of the
  876.     list.
  877.  
  878.     »»» IMPROVEMENTS:
  879.  
  880.     New menu command to edit a format file using external editor.  File
  881.     notification will be implemented in the next release.
  882.  
  883.     AmigaGuide is now opened on demand only.  This preserves RAM when
  884.     the help system is not needed and delays the need to insert a disk
  885.     with the .guide file if this file is kept off-line on a floppy, for
  886.     example.
  887.  
  888.     Now supports pointing at a gadget with the mouse and pressing HELP.
  889.     This completes the implementation of context sensitive help.
  890.  
  891.     Displays are now handled with SIMPLEREFRESH; KingFisher takes care
  892.     of its own refreshing, which means that Intuition no longer has to
  893.     maintain a backup bitmap in case an obscured portion of the window
  894.     needs "repair" (thus reducing RAM requirements!) and speeding up
  895.     the moving of KingFisher's windows, especially on deep screens,
  896.     such as 256 color displays.
  897.         If you prefer the older method, place SMARTREFRESH into the
  898.     tooltypes or change the REFRESH entry in the .prefs file to SMART.
  899.  
  900.     Now allows selection of any font from the system to be used for
  901.     menus, requesters, display, etc.  This functionality may be later
  902.     expanded to a set of three or so separate fonts for various parts
  903.     of the interface.
  904.  
  905.     Starting with Kickstart V38 (2.1) KingFisher now allows you to
  906.     select a custom screen mode, complete with size, number of colors,
  907.     and autoscroll.  For V37 (2.04) it is necessary to construct the
  908.     .prefs entry manually.  This is detailed in the documentation for
  909.     that menu command.
  910.  
  911.  
  912.  
  913. v2.2    14-Aug-1994
  914.  
  915.     »»» BUG FIXES:
  916.  
  917.     Fixes a bug with adding records to the database.  Symptom: new
  918.     records would show up blank and would, in fact, have only the 5
  919.     character (field identifier) string ".name" in them.
  920.  
  921.     Also fixed another bug with adding records to a database from which
  922.     records had previously been removed (Delete Fish); the new records
  923.     would be always appended to the database instead of placed in their
  924.     proper location (overwriting old, unused data) while the index
  925.     would indicate the position the records should have occupied.  The
  926.     result was apparently corrupted information.
  927.         It is safe to delete all records starting with the first
  928.     "bad" one and then re-adding them.
  929.  
  930.     The Version Tags ($VER:) in KingFisher and KFServer have been fixed
  931.     to be Style Guide compliant.  It appears that V40 software (KS 3.1)
  932.     is more lenient than V37/V38 with respect to spaces in the program
  933.     name.  This was required to make the 'DoPatch' script/tool work.
  934.  
  935.     A problem was corrected with the 'DBInfo' entries in the .prefs
  936.     file where bogus information was stored to the entries.  Editing
  937.     the KingFisher2.prefs file and removing all lines beginning with
  938.     'DBInfo=' will assure that these bogus entries will not interfere
  939.     with normal operation.  As more databases are added and the need
  940.     arises to maintain last-position for them all, KingFisher will
  941.     reclaim the space used by the oldest (possibly bogus) items, so
  942.     there is not real need to modify the file and remove bogus entries.
  943.  
  944.     »»» IMPROVEMENTS:
  945.  
  946.     The promised speedup to the searching with masks has now been
  947.     implemented.  This may be dozens, if not hundreds of times faster
  948.     than a previous search.  Once you have setup various flags, you may
  949.     be able to build a Search Set at blinding speed!
  950.  
  951.     A new option in the Global Preferences causes KingFisher to always
  952.     open its window in the center of the display when you start the
  953.     program.  This is useful especially when KingFisher's window opens
  954.     on public screens of varying resolutions and might otherwise end up
  955.     being pushed about to suit varying resolutions; with the new Center
  956.     Main Window option on, you can rely on it always appearing in the
  957.     center.
  958.  
  959.     KingFisher now recognizes the 'Help-File' entry in the .prefs file,
  960.     which specifies the name of the .guide; the default for this entry
  961.     is "KingFisher2.guide"; without path, AmigaGuide will look for this
  962.     file in several places, including the default directory.
  963.  
  964. #EOT
  965.